#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
	int sss=0,www=1;
	char chh=getchar();
	while(chh<'0'||chh>'9'){
		if(chh=='-') www=-1;
		chh=getchar();
	}
	while(chh>='0'&&chh<='9'){
		sss=sss*10+chh-'0';
		chh=getchar();
	}
	return sss*www;
}
int n;
int a[2005],b[2005],c[2005];
int cnt[2005][22];
int head[2005],to[4005],val[4005],nxt[4005],tot=1;
void add(int u,int v,int w){
	to[++tot]=v;
	val[tot]=w;
	nxt[tot]=head[u];
	head[u]=tot;
}
void add_edge(int u,int v,int w){
	add(u,v,w),add(v,u,w);
}
void dfs(int now,int father){
	for(register int i=head[now];i;i=nxt[i]){
		int u=to[i]; if(u==father) continue;
		cnt[now][val[i]]++;
		dfs(u,now);
		for(register int j=1;j<=20;j++) cnt[now][j]+=cnt[u][j];
	}
}
signed main(){
	freopen("tatooine.in","r",stdin);
	freopen("tatooine.out","w",stdout);
	n=read(); 
	for(register int i=1;i<n;i++){
		a[i]=read(),b[i]=read(),c[i]=read();
	}
	for(register int i=1;i<n;i++){
		memset(head,-1,sizeof head); tot=1;
		memset(cnt,0,sizeof cnt);
		for(register int j=1;j<i;j++) add_edge(a[j],b[j],c[j]);
		for(register int j=i+1;j<n;j++) add_edge(a[j],b[j],c[j]);
		dfs(a[i],0); dfs(b[i],0);
		for(register int x=1;x<=n;x++){
			int lst=0;
			for(register int j=19;j>=1;j--){
				if(cnt[x][j]>0&&lst==0){
					lst=cnt[x][j];
					continue;
				}
				if(cnt[x][j]>0&&lst>0){
					cnt[x][j]+=lst;
					lst=cnt[x][j];
				}
			}
		}
		int sum=0;
		for(register int j=1;j<=20;j++) sum+=cnt[a[i]][j]*j+cnt[b[i]][j]*j;
		cout<<sum<<"\n";
	}
	return 0;
}
